Printer/facsimile driver

ABSTRACT

A printer/facsimile system includes a printer/facsimile driver to automatically insert a facsimile cover sheet at the beginning of a facsimile document. The system includes the process steps of preparing a document to be faxed, invoking a facsimile dynamic link library which operates to create, by using facsimile dynamic link libraries, facsimile cover sheet data, and to call a printer driver to render a body of the facsimile document, rendering the facsimile document, spooling the rendered facsimile document from the printer driver to a memory and returning the number of rendered document pages to the facsimile application, recalling the printer driver to render the facsimile cover sheet and transmitting the created cover sheet data including the number of rendered document pages together with a fax flag indicator to the printer driver, rendering the facsimile cover sheet in accordance with transmitted cover sheet data, spooling the rendered facsimile cover sheet to the memory in accordance with the fax flag indicator, and retrieving the facsimile cover sheet and facsimile document from the memory and outputting both the facsimile cover sheet and facsimile document in proper order, respectively.

BACKGROUND OF THE INVENTION

1. Field Of The Invention

The present invention relates to a printer/facsimile driver which canappropriately order a facsimile cover sheet and the fax document priorto downloading it to a facsimile device. More particularly, the presentinvention is a printer/facsimile driver which is configured so it can berecalled by a fax DLL to automatically insert at the beginning of afacsimile output, a facsimile cover sheet having the total number ofpages of the facsimile document indicated on its face.

2. Description Of The Related Art

Conventionally, in order for a document to be printed or to be faxed, auser must have loaded on his/her computer both a printer driver and afacsimile driver in order to create a document to be printed or adocument to be faxed, respectively.

Today, however, there are multi-task devices, such as a Canon GP55digital copier, which can perform both printing and faxing jobs. Sinceboth the print and the fax jobs are performed by the same device, it isdesirable to simplify the device's design and reduce the amount ofmemory required in the device by having a single printer/facsimiledriver to perform both print jobs and fax jobs.

Accordingly, there is a need for providing a driver which performs bothprinting and facsimile operations.

SUMMARY OF THE INVENTION

These needs are addressed by the present invention by providing aprinter/facsimile driver which provides both printing and facsimilecapabilities and which, when providing facsimile capabilities, allowsitself to be recalled so as to generate first the body of the facsimile,and second, a facsimile cover sheet.

More particularly, the present invention is a facsimile output systemfor creating a facsimile document and facsimile cover sheet whichincludes the number of document sheets to be faxed, a bitmap logo,notes, and a bitmap signature. The facsimile output system includes aninput interface for inputting a document to be faxed and for inputting afacsimile transmission request, a memory for storing processing stepsand a printer/facsimile driver for a peripheral device, and a processorfor invoking the printer/facsimile driver process steps in response toan input facsimile transmission request. The printer/facsimile driver 1)retrieves the input document to be faxed, 2) creates facsimile coversheet data, 3) calls and instructs a printer driver of the peripheraldevice to render a facsimile document based on the input document, tospool the rendered facsimile document to a specified memory location, tosignify a number of pages in the rendered facsimile document and toreturn control to the printer/facsimile driver, 4) recalls the printerdriver to render the facsimile cover sheet, transmits the created coversheet document data with the number of pages rendered together with afax flag indicator to the printer driver, and instructs the printerdriver to render a facsimile cover sheet in accordance with thetransmitted cover sheet document data, and to spool the renderedfacsimile cover sheet to a specified memory location, and 5) retrievesthe facsimile document and facsimile cover sheet from the specifiedmemory locations and transmits both the facsimile cover sheet andfacsimile document in proper order, respectively.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an overall system view of a multi-user local area networksystem which includes a printer/facsimile driver for controlling adigital copier and for transmitting facsimile outputs;

FIG. 2 is a block diagram of the internal structure of the computingequipment used with the present invention;

FIG. 3 is a cut-away perspective view of the MDC for showing individualoption boards mounted therein;

FIG. 4 is a block diagram showing the relationship between softwareapplications and dynamic link libraries and programs contained in theprinter/facsimile driver;

FIG. 5 is a representational view of a graphical user interface displaywhich shows the current configuration and capabilities of the digitalcopier;

FIGS. 6A-6F are representational views of sub-dialog boxes which arewindows displayed to the user in order to select job options for aparticular job to be sent to the digital copier;

FIG. 7 is a flow diagram describing the method for generating anddisplaying a graphical user interface which includes a representativegraphical image of a current configuration and capabilities of thedigital copier;

FIGS. 8A and 8B are flow diagrams describing how to print a document tothe digital copier or how to prepare a facsimile cover sheet andfacsimile document prior to transmission;

FIG. 9 is a representational view of a graphical user interface displaywhich is displayed to a user for sending a facsimile transmission;

FIG. 10 is a representational view of a graphical user interface displaywhich is displayed to a user in order to create/edit a facsimile coversheet;

FIG. 11 is a representational view of a graphical user interface displayfor designating facsimile options;

FIG. 12 is a representational view of a graphical user interface displayof an address book which is displayed to a user in order to create andedit address book entries;

FIGS. 13A and 13B are representational views of sub-dialog boxes whichare windows displayed to a user in order to create/edit individualaddress information; and

FIGS. 14A and 14B are representational views of sub-dialog boxes whichare windows displayed to a user for the purpose of previewing afacsimile cover sheet prior to transmission.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 is an overall view of a typical multi-user local area network inwhich the present invention operates.

As seen in FIG. 1, local area network 10 is connected to computingequipment 11, laptop computer 12, and multi-device controller 13.Multi-device Controller (hereinafter MDC) 13 is also connected totelephone line 15 and digital copier 16. A suitable digital copier foruse in the present invention is a Canon GP55, a digital copier which hasthe capability of operating as a scanner, printer, and, of course, acopier. MDC 13 accesses an interface bus of digital copier 16 so as tobreak out the functionality of the scanner section and the printersection. The function and operation of MDC 13 and digital copier 16 willbe discussed in greater detail hereinbelow.

The present invention can be embodied in any one of computers 11 or 12.However, for the purpose of simplicity, the present invention will bedescribed with respect to computing equipment 11, which can be aMacIntosh or an IBM PC or PC compatible computer having a windowingenvironment, such as Microsoft Windows. Provided with computingequipment 11 is a display screen, such as a color monitor or amonochromatic monitor, keyboard for entering text data and usercommands, and pointing device such as a mouse for pointing andmanipulating objects displayed on the screen.

Computing equipment 11 may include a mass storage device such as acomputer disk drive for storing data files which can include documenttext files and image files, in compressed or uncompressed format, andfor storing application program files which can include Windowsapplications, DOS, Novell Netware®, printer/facsimile driver, and localdevice drivers. Alternatively, some or all of these applications can bestored on a networked file server (not shown) accessible to computingequipment 11 via local area network 10. In addition, computing equipment11 can include desktop publishing programs or other informationprocessing programs which contain stored program instructions by whichcomputing equipment 11 manipulates data files and presents data in thosefiles to a user via the display screen or which can be sent across localarea network 10.

FIG. 2 is a detailed block diagram showing the internal construction ofcomputing equipment 11. As shown in FIG. 2, computing equipment 11includes a central processing unit (CPU) 21 interfaced with computer bus22. Also interfaced with computer bus 22 is local scanner interface 23,local printer interface 24, network interface 25, local facsimile/modeminterface 26, display interface 27, keyboard interface 28, mouseinterface 29, main memory 30, and disk 31.

Main memory 30 interfaces with computer bus 22 so as to provide randomaccess memory storage for use by CPU 21 when executing stored programinstructions such as a Windows desktop publishing program or any one ofthe local device drivers. More specifically, CPU 21 loads those programsfrom disk 31 into main memory 30 and executes those stored programs outof main memory 30. In accordance with user instructions, storedapplication programs are activated which permit processing andmanipulating of data. For example, a desktop publishing program such asWordperfect® for Windows may be activated by a user to create,manipulate, view documents, and print or facsimile documents. Likewise,a device driver may be activated to permit the user to accessfunctionality of the local peripheral devices or the network peripheraldevices.

Disk 31 stores Windows applications, DOS applications, network interfacesoftware, such as Novell Netware® and local peripheral device drivers. Adescription of these applications will be omitted since theirfunctionality is well known. Disk 31 also contains printer/facsimiledriver 40, which will be explained below in greater detail. Mosttypically, the applications stored on computer disk 11, includingprinter/facsimile driver 40, have been stored on disk 31 by downloadingthe application from a computer readable medium, such as a floppy diskor CD-ROM.

Now, a brief explanation will be provided as to how MDC 13 accesses thefunctionality of digital copier 16 and sets up the operations of digitalcopier 16 for use by computing equipment 11 and 12. A more detaileddescription of MDC 13 and its operation and functionality are providedin co-pending application Ser. No. 08/409,034 filed Mar. 23, 1995, whichis commonly assigned to the same assignee as the present application.

As shown in FIG. 3, MDC 13 includes core board 41 which accesses theinterface bus of digital copier 16 and which provides access to thatinterface bus by plural option boards which are connectable to coreboard 41. The option boards communicate with core board 41 viacommunication through a dual port ram on each option board. Typically,one of the option boards will include an interface board such as printerinterface board 42 which permits connection to digital copier 16. Optionboards may also include facsimile board 43 which permits direct outputto a telephone line 15 shown in FIG. 1. Another of the option boards,according to the present invention, is network interface board 45 whichpermits core board 41 and MDC 13 to access local area network 10 shownin FIG. 1.

In operation, digital copier 16 is operable in a stand-alone mode as astandard digital copier. In addition, it as operable as a scanner or asa printer to local users via computing equipment 11 and 12. Mosttypically, via network interface board 45, and in coordination with MDC13, digital copier 16 is operable as a multi-functional network deviceaccessible by any of multiple network users who may desire concurrentuse of the scanner capability of copier 16, printing capability ofcopier 16, or one of the option boards in MDC 13, such as theaforementioned facsimile option board 43.

FIG. 4 is a block diagram showing the relationship between softwareapplications and dynamic link libraries and programs contained inprinter/facsimile driver 40.

As shown in FIG. 4, printer/facsimile driver 40 is used withconventional software application 50, such as Word for Windows orWordperfect® for Windows which allows a user to prepare, edit and printdocuments. When a user enters a print document request, application 50invokes a standard Graphics Device Interface (GDI) 52 which, in turn,invokes core printer driver 53 which operates in accordance with thepresent invention. If printing is desired, core printer driver 53 simplyassembles the print job from application 50 and spools the print job toWindows spooler 55. In a conventional manner, Windows spooler 55 thenoutputs the print job over the network using conventional means betweenthe Windows operating system and the network software and hardwareinstalled on the network.

On the other hand, where a facsimile output is desired, core printerdriver 53 invokes facsimile user interface dynamic link library (faxUIDLL) 60. Generally speaking, fax UIDLL 60 generates the facsimile userinterface and pre-fixes a facsimile cover sheet at the beginning of thefacsimile job. However, since the facsimile cover sheet needs to includethe number of pages being faxed, and since such information is notavailable until the remainder of the facsimile job is processed, thefollowing steps are taken.

First, fax UIDLL 60 invokes core printer driver 53 in order to createthe body of the facsimile document (the facsimile job) by setting a faxflag which indicates to core printer driver 53 that the document is tobe spooled to a specific location in disk 31. This time, however, coreprinter driver 53 does not spool through Windows spooler 55, but ratherspools the body of the facsimile document to disk 31. In addition, afterthe body of the facsimile document has been spooled to disk 31, coreprinter driver 53 reports to fax UIDLL 60 that it has completed itsoutput and provides fax UIDLL 60 with the number of pages in thefacsimile document.

Next, in response to notification from core printer driver 53, that theoutput has been spooled to disk 31, fax UIDLL 60 again invokes coreprinter driver 53, but this time with facsimile cover sheet informationand another fax flag which indicates to core printer driver 53 to spoolthe document to disk 31 and to return operation to fax UIDLL 60. In thisregard, the manner by which the facsimile cover sheet information isobtained will be discussed in greater detail below. Once again, coreprinter driver 53 does not spool the facsimile cover sheet to Windowsspooler 55, but rather spools it to disk 31.

Fax UIDLL 60 retrieves the cover sheet file and the facsimile body filefrom disk 31 and spools both, in proper order, and with appropriateheaders obtained from MDC header code DLL 62 to Windows spooler 55. Uponobtaining the MDC header information, the facsimile cover sheet and thefacsimile document are spooled to network 57 to MDC 13 which routes thefacsimile document files to the appropriate destination based on the MDCheader information. Typically, the facsimile document will be sentdirectly over telephone line 15 if MDC 13 includes a facsimile optionboard.

In either case of printing or faxing, the user must set-up the necessarychannel by which the document will be output prior to printing or faxinga document. In the present invention, digital copier 16 or MDC 13 willoutput a print job or a facsimile job, respectively.

Generating And Displaying A Graphical User Interface For The DigitalCopier!

According to the present invention, printer/facsimile driver 40 includesa software program, copier user interface dynamic link library (copierUIDLL) 65 shown in FIG. 4, which includes process steps to interrogatedigital copier 16 for its current configuration, status andcapabilities. Copier UIDLL 65 also includes libraries of copierconfiguration graphical images and commands, copier capabilitiesgraphical images and commands, and libraries of user-selectable joboptions corresponding to configuration and capabilities of digitalcopier 16. Based on these libraries, copier UIDLL 65 generates anddisplays the current configuration and status of digital copier 16 in agraphical user interface display (to be discussed below in greaterdetail). The graphical user interface display not only contains agraphical representation of digital copier 16 in its currentconfiguration, but also displays the appropriate job options which canbe selected based on the current configuration and current capabilitiesof digital copier 16.

Thus, upon instruction from the user at the user's work station, such ascomputing equipment 11, copier UIDLL 65 sends a request to dynamicconfiguration dynamic link library (dynamic config DLL) 56 tointerrogate digital copier 16 to obtain a current configuration ofdigital copier 16 and to obtain information relating to the capabilitiesof digital copier 16 at that specific time and to return thatinformation to copier UIDLL 65. In this regard, dynamic config DLL 56returns information or data regarding current configuration andcapabilities of digital copier 16, but it is also to be understood thatdynamic config DLL 56 could also return instructions to copier UIDLL 65as to how copier UIDLL 65 should create, build and display the graphicaluser interface, i.e., vector graphic commands, fill patterns, geometricpositional commands, bitmap identifications of bitmaps to be used, etc.When the user needs to access digital copier 16, such as when printingor scanning, copier UIDLL 65 displays to the user a graphical userinterface which includes a representative graphical image of digitalcopier 16 with the graphical image indicating the current configurationat the specific moment the interrogation was answered by digital copier16.

One example of such a graphical user interface of digital copier 16 isshown in FIG. 5 which shows copier-configuration window 70 whichincludes representative graphical image 71 of digital copier 16. Asmentioned above, graphical user interface 70 is generated based on theinformation returned from digital copier 16 regarding its currentcapabilities and current configuration. Specifically, copier UIDLL 65retrieves specific copier configuration libraries and copiercapabilities from libraries based on the returned configuration andcapabilities information in order to generate a customized graphicaluser interface such as that shown in FIG. 5. That is, copier UIDLL 65includes various libraries which include graphical display informationand commands for each possible configuration and capabilities of digitalcopier 16. In this manner, upon receiving information from digitalcopier 16 regarding its current capabilities and current configuration,copier UIDLL 65 retrieves the configuration and capabilities based onthat information and customizes a graphical user interface based on thecurrent configuration and current capabilities of digital copier 16. Itis to be understood that only configuration libraries and capabilitieslibraries which correspond to the returned current configuration andcurrent capabilities of digital copier 16 are retrieved to create anappropriate graphical user interface.

Based on the configuration and the capability libraries retrieved,copier UIDLL 65 also retrieves associated job option menus and dialogboxes to be displayed to a user. As a result, only the job options whichare appropriate for the current configuration and the currentcapabilities of digital copier 16 are provided to the user forselection. For example, copier UIDLL 65 includes sub-dialog boxes whichpermit the user to select new job options, if desired, by pointing andclicking on job options within the sub-menu or the sub-dialog boxprovided in copier configuration window 70. For example, FIGS. 6A and 6Billustrate two types of sub-dialog windows. In FIG. 6A, sorter window 85pops-up when the user clicks on the graphical representation of sorterbin 72. Sorter window 85 permits the user to select how the outputdocument is to be sorted, stapled, grouped, etc. And, in FIG. 6B, duplexwindow 95 pops-up when the user clicks on the graphical representationof duplex unit 73 and permits the user to select a type of duplexprinting.

Other job options displayed in sub-menus or sub-dialog boxes such asthose discussed above, are dictated by the list of capabilities andconfiguration of digital copier 16 during a specific interrogation.Through interaction with the submenus or sub-dialog boxes, the user canselect new job options for a particular job which is to be sent todigital copier 16. For example, the user can select from many joboptions such as sorter options, paper tray options, duplexing options,graphics options, print-type options, font-type options, documentorientation options, resolution options, transparency interleavingoptions, and magnification options.

Once the selections have been set, copier UIDLL 65, with the newlyselected job options, redisplays graphical image 71 of digital copier16. Upon reviewing graphical image 71, the user can either again selectnew job options via the menus or sub-dialog boxes or accept the joboptions which are displayed by clicking on OK button 78 incopierconfiguration window 70.

Depending on the capabilities and options of digital copier 16, the usercan select various types of copying operations such as reverse andforward printing, duplexing, color elimination, pattern matching, etc.In addition, the user can select which paper cassette based on type ofpaper contained within each cassette. And, of course, as noted above,the user has the option of selecting how the print job is to be outputwhether to a sorter tray or to an individual tray, and whether theoutput document is to be stapled.

The method of generating and displaying a graphical user interface ofdigital copier 16 will now be discussed in greater detail with respectto flow diagram 7.

Referring to FIG. 7, upon completing a document in a word processingapplication such as Wordperfect or upon retrieving a document to beprinted, a print request sent via the currently running word processingapplication causes device options to be displayed for the print job instep S702. In step S702, it is determined whether networked digitalcopier 16 is selected. In the case that the digital copier is notselected in step S702, in step S705, GDI 42 invokes an appropriateperipheral device driver, such as the device driver for the localscanner or local facsimile machine based on the user's selection.However, if, in step S702, the network digital copier 16 is selected,flow proceeds to step S706 at which point GDI 42 invokes copier UIDLL65.

Upon invoking copier UIDLL 65, the status of the configuration ofdigital copier 16 is immediately requested by sending a configurationand capabilities interrogation via dynamic config DLL 56 over LAN 10 todigital copier 16 (step S707). Upon a return of the requestedconfiguration and capabilities information from digital copier 16,copier UIDLL 65 generates a graphical user interface which reflects thecurrent configuration and the current capabilities of digital copier 16at the specific instance the interrogation was received by digitalcopier 16.

In step S709, if digital copier setup is requested, digital copiergraphical image 71 which represents digital copier 16 as it is currentlyconfigured and with its current capabilities is displayed to the user.In addition, copier UIDLL 65 generates and displays only job optionmenus and job-option dialog boxes which are applicable to that currentconfiguration and capabilities of digital copier 16. For example, asshown in FIG. 5, digital copier 16 is shown as having 20-bin staplesorter 72, two cassettes 74 and 75, paper deck 76, and duplex unit 73.By using the mouse to point and click on graphical image 71, currentcopierconfiguration window 70 becomes an interactive graphical userinterface which responds to user selections when the user clicks on anyportion of the digital copier in graphical image 71. For example, if theuser points and clicks on sorter tray 72, the sub-dialog box 85 shown inFIG. 6A will appear overlaid onto copier-configuration window 70.Utilizing the sub-dialog box 85 for the sorter, the user can alter orreconfigure how the documents are to be sorted upon being printed.Similarly, sub-dialog box 95 shown in FIG. 6B will appear if the userpoints and clicks anywhere on duplex unit 73 of digital copier 16 shownin window 70.

As mentioned previously, if digital copier 16 does not include, forexample, a sorter, the sorter will not be displayed. Likewise, joboption sub-dialog boxes for the sorter will not be displayed. Thus, onlyjob options which can be carried out by digital copier 16 based on itscurrent configuration and current capabilities will be provided to theuser. In this manner, the user cannot try to select a job option whichis not available or cannot physically be performed based on the currentcapabilities of digital copier 16.

In step S710, it is determined whether the user has pointed and clickedon any of the sub-dialog boxes or option menus. By pointing and clickingon any number of new job options, the user can select job options fordigital copier 16 to perform. For example, if the user clicks on"configuration" icon 79, the dialog box shown in FIG. 6C is overlaidover window 70.

FIG. 6C displays to the user the correct set-up of digital copier 16 andthe options available to a network user. If communication could not beestablished with digital copier 16, the selections in the displayeddialog boxes will change to allow the user to manually enter the optionsin FIG. 6D. The "set to manual configuration" button will allowpermanent disabling of any network detection. Nevertheless, using thevarious subdialog boxes shown there, the user can review configurationsettings and capabilities of digital copier 16 in FIG. 6C.

If the user wishes to change printing options of digital copies 16, theuser clicks on "option" icon 80. Upon clicking on option icon 80, thedialog box shown in FIG. 6E is overlaid over window 70. By resetting joboptions in various subdialog boxes provided therein, the user can changea graphics mode, graphics quality, gray scale, font and printer memorycapacity.

Once the user has set various job options for a specific job, copierUIDLL 65 redisplays copier-configuration window 70 which shows theselected job options in step S711. In this manner, in step S711, theuser can determine if the newly selected job options are acceptable forthe user's particular task. If the job options are not acceptable, theuser can select new job options for digital copier 16.

If the new job options are not to be selected, flow proceeds to stepS713 at which point all job option data are sent across the network todigital copier 16 via MDC 13. In this regard, all job option settingswhich are the same as the settings of the current job options aredownloaded even though no changes to the settings were made. Likewise,if the user has reset all job options of digital copier 16, all joboption data, including newly selected job option settings as well as joboption settings which were not changed, are downloaded with the printjob across the network to digital copier 16 via MDC 13 in step S716 aswell.

Preferably, job option settings are selected at the time a print job isrequested and, in this manner, the job option data is output to theprinter queue as a header file of the print file when it is downloadedto digital copier 16. It is noted that it is possible to set job optionselections for digital copier 16 at any time and not necessarily at thetime a print job is requested.

On the other hand, if the document to be output is not to be printed todigital copier 16, but rather transmitted as a facsimile output, theuser clicks on facsimile button 77 in window 70. This action prompts theset-up of the facsimile document body and cover sheet by fax UIDLL 60which in turn outputs both files to MDC 13 for output. This operationand the printing operation will be discussed in greater detail below.

Printing/Faxing!

FIGS. 8A and 8B illustrate the method by which a document prepared atcomputing equipment 11 can be output, via local area network 10, toeither a printed document or a facsimile transmission. The process stepsshown in FIGS. 8A and 8B are executed by CPU 21 by loading varioussoftware programs of printer/facsimile driver 40 into main memory 30 andexecuting process steps in those programs from main memory 30.

The process steps in FIGS. 8A and 8B illustrate operation of CPU 21,which retrieves programs from disk 31, executes those programs, then inturn invokes various user interface dynamic link libraries which operateto send data and receive data across local area network 10. In addition,the process steps provide for access to digital copier 16, via MDC 13which also directs data files from computing equipment 11 to theappropriate destination such as a facsimile job which is sent out overtelephone line 15.

If the document is to be printed (step S800), GDI 52 invokes coreprinter driver 53 which operates to retrieve the print job from thecurrently operating word processing application in step S801. Afterretrieving the print job, core printer driver 53 spools the print job toWindows spooler 55 in step S802. In a known manner, Windows spooler 55outputs the print job to digital copier 16 via the network interface andMDC 13 which directs the print file to digital copier 16 for printing instep S803.

On the other hand, if the document is to be a facsimile output (stepS804), core printer driver 53 invokes fax UIDLL 60 in step S805. In stepS808, fax UIDLL 60 displays send-fax window 90 which provides the userby way of option menus and subdialog boxes the following options:addressing of an outgoing facsimile, editing the address book,creating/editing the cover sheet layout, and setting the facsimileoptions. For example, by pointing and clicking on a name in "addressbook" 91, a fax recipient name is highlighted. By "double" clicking onthe same name, the name and corresponding fax number will beautomatically entered into the "recipient" field of the cover sheet insend-fax dialog box 90. On the other hand, if an individual name doesnot appear in address book 91, the user can manually enter therecipients name and fax number in "Name" field and "Number" field.

Most typically, the user will define the data to be inserted into acover sheet prior to sending a facsimile transmission. Thus, in stepS809, by clicking on "cover sheet" icon 92 in send-fax window 90, asub-dialog box entitled "fax-cover-sheet" appears as shown in FIG. 10.Fax cover-sheet dialog box 93 includes alterable settings to edit acover sheet layout for the facsimile as well as to preview the coversheet upon its completion.

As described above, upon clicking on cover sheet icon 92,fax-cover-sheet sub-dialog box 93 pops up. As discussed above,fax-cover-sheet sub-dialog box 93 shown in FIG. 10 allows the user tocreate and edit a cover sheet. The cover sheet which can be created byusing the options shown in facsimile-cover-sheet dialog box 93 permitsthe user to enter the following information: sender's name, sender'sfacsimile number, recipient('s) name(s), recipient('s) phone number(s),page count, priority, logo, and signature. The user can enter all thisinformation by pointing and clicking on the appropriate function infax-cover-sheet sub-dialog box 93 shown in FIG. 10. For example, byclicking on "sender-information" box 94, the user can enter a new sender"Name" and "Number", or modify the existing sender Name and Number. Insub-dialog box 95, the user can enter a cover sheet note to be printedon the front of the cover sheet.

Upon completing the cover sheet, the user can set the facsimile options.Thus, by clicking on "options" icon 104 in step S810, fax UIDLL 50displays fax-options sub-dialog box 100 shown in FIG. 11 to the user. Asshown in FIG. 11, faxoptions sub-dialog box 100 allows the user toselect the priority of the facsimile output, the orientation of thefacsimile document, i.e., portrait or landscape, a resolution, andappropriate paper size for the document.

If the user points and clicks on "address-book" icon 105, address-booksub-dialog box 106 pops-up as shown in FIG. 12 (step S814). Address-booksub-dialog box 106 allows a user to create/edit entries in the addressbook by inputting names, addresses, and facsimile information into theaddress book. To create or edit an entry, the user clicks either a"new-individual" button 107 or "edit" button 108, respectively. That is,in steps S815 and S816, in the case that a recipient's name and faxnumber are not in the address book or the recipient information haschanged, the user can enter the individual's name and telephone numberby clicking on new-individual button 107 or edit button 108 inaddress-book sub-dialog box 106.

Upon clicking on new-individual button 107 in address-book sub-dialogbox 106, "create-individual" sub-dialog box shown in FIG. 13A willappear. Create-individual sub-dialog box 115 permits the user to enterthe individual's name, company, facsimile numbers, and a brief note. Theentry will be added to the address book listing shown increate-individual sub-dialog box 115 upon clicking on "OK" button 116 increate-individual sub-dialog box 115. In addition, a user can changeinformation of an entry in the address book by clicking on "edit" button108 which causes "edit-individual" sub-dialog box 120 to pop-up. Insub-dialog box 120, an entry which is highlighted in address-booksub-dialog box 106 is reproduced in the "edit-individual" sub-dialog box120 at which point the user can edit any of the individual's personalinformation and then add the changes back into the address book byclicking on "OK" button 121.

Address-book sub-dialog box 106 also permits the user to create/editentries of a group much in the same manner as an individual's entry asdescribed above.

Upon completing steps S815-S819, the user can return to fax-cover-sheetsub-dialog box 93 at which point the user can click on "preview" button130 to preview the facsimile cover sheet. As shown in FIGS. 14A and 14B,the user can preview the facsimile cover sheet in"facsimile-cover-sheet-preview" window 140. As shown in FIG. 14B, theuser has the option to preview the cover sheet by zooming in and zoomingout in order to preview specific portions of the cover sheet. If thefacsimile cover sheet is not completed, the user simply re-enters thenecessary information in same manner as described above by returningflow to step S809.

On the other hand, if no entries are being created or edited, uponcompleting the cover sheet and clicking on the OK button, flow proceedsto step S821 at which point fax UIDLL 60 has gathered all of theinformation for the cover sheet and calls core printer driver 53. Thus,in step S821, fax UIDLL 60 invokes core printer driver 53 and sets afacsimile flag so that core printer driver 53 knows that the documentwhich is to be retrieved from the currently operating word processingapplication is to be a facsimile output. Fax UIDLL controls core printer53 to retrieve and rasterize the document prepared by the wordprocessing apparatus.

In step S822, core printer driver 53 rasterizes the document and outputsthe rasterized document file to a specific memory location in disk 31which has been designated by the fax flag. In step S823, core printerdriver 53 calls fax UIDLL 60 to inform it that it has completed therendering of the document to disk 31 and, most importantly, provides faxUIDLL 60 with the number of rendered pages of the document. In stepS823, core printer driver 53 releases control back to fax UIDLL 60, atwhich point fax UIDLL 60 compiles the data necessary for forming thecover sheet.

In step S824, fax UIDLL 60 recalls core printer driver 53 with thefacsimile cover sheet information. At this time, fax UIDLL 60 also sendsa fax flag to core printer driver 53 so that the information is not sentto Window spooler 55, but rather the cover sheet file is sent to aspecified memory location in disk 31. That is, core printer driver 53acknowledges the facsimile flag sent from fax UIDLL 60 so it does nottry to call fax UIDLL 60 again as it would upon receiving a request tosend a facsimile transmission, but rather spools the facsimile coversheet to disk 31 in step S825.

In step S826, fax UIDLL 60 controls MDC header DLL 52 to spool anappropriate MDC header to Windows spooler 55. After the MDC headerinformation has been spooled, fax UIDLL 60 retrieves the facsimile coversheet file and the facsimile body file from disk 31 and spools both inproper order to Window spooler 55. To complete the facsimile output, faxUIDLL 60 again controls MDC header DLL 52 to spool MDC headerend-of-file information to Windows spooler 55.

Finally, in step S827, windows spooler 55 upon receiving all of thefacsimile output information transmits the facsimile output across thelocal area network 10 to MDC 13 which routes the output based on the MDCheader information to its appropriate destination.

The invention has been described with respect to a particularillustrated embodiment. It is to be understood that the invention is notlimited to the above-described embodiment and that various changes andmodifications may be made by those of ordinary skill in the art withoutdeparting from the spirit and scope of the invention.

What is claimed is:
 1. A method for calling a printer/facsimile driverto automatically generate and output facsimile cover sheet informationand a facsimile document, the method comprising the steps of:preparing afacsimile document to be faxed; invoking a facsimile dynamic linklibrary which operates to create, by using facsimile dynamic linklibraries, facsimile cover sheet data, and to call a printer driver torender a body of the facsimile document; rendering the facsimiledocument; spooling the rendered facsimile document from the printerdriver to a memory and returning the number of rendered document pagesto the printer/facsimile driver; recalling the printer driver to renderthe facsimile cover sheet data and transmitting to the printer driverthe created cover sheet data including the number of rendered documentpages together with a fax flag indicator; rendering the facsimile coversheet information in accordance with transmitted cover sheet data;spooling the rendered facsimile cover sheet information to the memory inaccordance with the fax flag indicator; and retrieving the facsimilecover sheet information and facsimile document from the memory andoutputting both the facsimile cover sheet information and facsimiledocument in Proper order, respectively.
 2. A method according to claim1, wherein, in the preparing step and invoking step, the document isprepared and the facsimile dynamic link library is invoked by a wordprocessing software application.
 3. A method according to claim 1,wherein the step of rendering and spooling the facsimile documentincludes the step of rasterizing a document data file prepared in thepreparing step and outputting the rasterized data file to a file name inmemory which is specified by the facsimile dynamic link library.
 4. Amethod according to claim 1, wherein, in the creating step, the coversheet data is created by displaying a graphical user interface ofuser-selectable cover sheet options, and storing, to a cover sheet datafile, data corresponding to selected options.
 5. A method according toclaim 4, wherein, in the transmitting step, the stored cover sheet datafile is sent to the printer driver.
 6. A method according to claim 5,wherein the transmitting step transmits a fax flag indicator whichinstructs the printer driver to store the cover sheet data to a filename in the memory and to return control back to the facsimileapplication upon generation of the facsimile cover sheet information. 7.A facsimile output system for creating a facsimile document andfacsimile cover sheet information which includes a number of documentsheets to be faxed, the facsimile output system comprising:input meansfor inputting a document to be faxed and for inputting a facsimiletransmission request; memory means for storing process steps includingprinter/facsimile driver process steps for a peripheral device; processmeans for invoking the printer/facsimile driver process steps inresponse to an input facsimile transmission request, wherein theprinter/facsimile driver 1) retrieves the input document to be faxed, 2)creates facsimile cover sheet data, 3) calls and instructs a printerdriver of the peripheral device to render a facsimile document based onthe input document, to spool the rendered facsimile document to aspecified memory location, to signify a number of pages in the renderedfacsimile document and to return control to the printer/facsimiledriver, 4) recalls the printer driver to render the facsimile coversheet data, transmits the created cover sheet data with the number ofpages rendered together with a fax flag indicator to the printer driver,and instructs the printer driver to render facsimile cover sheetinformation in accordance with the transmitted cover sheet data, and tospool the rendered facsimile cover sheet information to a specifiedmemory location, and 5) retrieves the facsimile document and facsimilecover sheet information from the specified memory locations andtransmits both the facsimile cover sheet information and facsimiledocument in proper order, respectively.
 8. A facsimile output systemaccording to claim 7, wherein the facsimile cover sheet data is createdby displaying a graphical user interface of user-selectable cover sheetoptions, and storing, to a cover sheet data file, data corresponding toselected options.
 9. A facsimile output system according to claim 7,wherein the fax flag indicator instructs the printer driver to store thecover sheet data to a file name in the memory and to return control backto the printer/facsimile driver upon generation of the facsimile coversheet information.
 10. A facsimile output system according to claim 7,wherein the instruction to render and spool the facsimile documentincludes instructions to rasterize a retrieved document data file and tooutput the rasterized data file to a specified file name in memory. 11.A computer program product comprising:a computer-usable medium having acomputer-readable program code means embodied in the medium for causinga printer/facsimile driver to be called to generate and transmitfacsimile cover sheet information and a facsimile document, thecomputer-readable program code means in the computer program productcomprising:a computer-readable program code means for causing a computerto invoke a printer/facsimile driver application in response to an inputfacsimile transmission request; and a computer-readable program codemeans for causing the computer to execute the printer/facsimiledriver 1) to retrieve an input document to be faxed, 2) to createfacsimile cover sheet data, 3) to call and to instruct a printer driverof a peripheral device to render a facsimile document based on the inputdocument, to spool the rendered facsimile document to a specified memorylocation, to signify a number of pages in the rendered facsimiledocument and to return control to the printer/facsimile driver, 4) torecall the printer driver to render the facsimile cover sheet data, totransmit the created cover sheet data with the number of pages renderedtogether with a fax flag indicator to the printer driver, and toinstruct the printer driver to render facsimile cover sheet informationin accordance with the transmitted cover sheet data, and to spool therendered facsimile cover sheet information to a specified memorylocation, and 5) to retrieve the facsimile document and facsimile coversheet information from the specified memory locations and to transmitboth the facsimile cover sheet information and facsimile document inproper order, respectively.
 12. A computer program product according toclaim 11, wherein the fax flag indicator instructs the printer driver tostore the cover sheet data to a file name in the memory and to returncontrol back to the printer/facsimile driver upon generation of thefacsimile cover sheet information.
 13. A computer program productaccording to claim 11, wherein the instruction to render and spool thefacsimile document includes instructions to rasterize a retrieveddocument data file and to output the rasterized data file to a specifiedfile name in memory.
 14. A computer program product according to claim11, wherein the facsimile cover sheet data is created by displaying agraphical user interface of user-selectable cover sheet options, andstoring, to a cover sheet data file, data corresponding to selectedoptions.
 15. A computer executable program stored on a computer readablestorage medium, comprising:a step to cause reception of a renderedfacsimile document which has been rendered by a word processingapplication; a step to automatically determine a page count of therendered facsimile document based on the rendered facsimile document; astep to cause generation of facsimile cover sheet information inaccordance with facsimile cover sheet basic data used for generating thefacsimile cover sheet information and in accordance with the page countdetermined in said determining step; and a step to cause output of thefacsimile cover sheet information and the facsimile document, wherebythe facsimile cover sheet information, including the page count, and thefacsimile document are received as a series of facsimile information ata destination.
 16. The program according to claim 15, wherein thefacsimile cover sheet information is output before the facsimiledocument.
 17. The program according to claim 15, further comprising astep to cause display of the generated facsimile cover sheet informationwhereby an operator can recognize the displayed facsimile cover sheetinformation.
 18. The program according to claim 17, wherein thefacsimile cover sheet information is based on data input by theoperator.
 19. The program according to claim 15, wherein the facsimilecover sheet information and the facsimile document are output inaccordance with information indicating an output order and adestination.
 20. The program according to claim 15, wherein thefacsimile cover sheet information is output as a separate page from thefacsimile document.
 21. A method for generating and outputting facsimileinformation, comprising:receiving a rendered facsimile document whichhas been rendered by a word processing application; determining,automatically, a page count of the rendered facsimile document based onthe rendered facsimile document; generating facsimile cover sheetinformation in accordance with facsimile cover sheet basic data used forgenerating the facsimile cover sheet information and in accordance withthe page count determined in said determining step; and outputting thefacsimile cover sheet information and the facsimile document, wherebythe facsimile cover sheet information, including the page count, and thefacsimile document are received as a series of facsimile information ata destination.
 22. A method according to claim 21, further comprising astep of displaying the generated facsimile cover sheet informationwhereby an operator can recognize the displayed facsimile cover sheetinformation.
 23. A method according to claim 22, wherein the facsimilecover sheet information is based on data input by the operator.
 24. Amethod according to claim 21, wherein the facsimile cover sheetinformation and the facsimile document are output in accordance withinformation indicating an output order and a destination.
 25. A methodaccording to claim 21, wherein the facsimile cover sheet information isoutput as a separate page from the facsimile document.
 26. A methodaccording to claim 21, wherein the facsimile cover sheet information isoutput before the facsimile document.
 27. A method for generating andtransmitting facsimile cover sheet information and a facsimile document,the method comprising the steps of:displaying a graphical user interfaceof user-selectable cover sheet options; storing, in response to an inputof a user selection from the displayed user-selectable options, selectedcover sheet option data; invoking a printer driver to render a facsimiledocument and to output a number of pages in the rendered facsimiledocument; and re-invoking the printer driver to render the facsimilecover sheet information based on the stored cover sheet option data andthe number of rendered pages, and transmitting the rendered facsimilecover sheet information and the facsimile document, in proper order, toa facsimile device for output.
 28. A method according to claim 27,wherein the printer driver is capable of assembling and spooling jobs tobe printed by a printer.
 29. A method according to claim 27, wherein therendered facsimile cover sheet information is transmitted before thefacsimile document.
 30. A method for automatically generating andoutputting image data for a facsimile cover sheet and a facsimiledocument, the method comprising the steps of:calling a printer driver torender image data for the facsimile document and to return a page countcorresponding to the number of rendered document pages; storing inmemory the image data for the facsimile document, as rendered by theprinter driver; recalling the printer driver with the page count torender image data for the facsimile cover sheet, the image data for thefacsimile cover sheet including an image corresponding to the page countfrom the memory; outputting the image data for the facsimile cover sheetdata and outputting the stored image data for the facsimile document.31. A method according to claim 30, wherein the printer driver is usedfor rendering a document to be faxed and a document to be printed.
 32. Amethod according to claim 30, wherein the facsimile document is suppliedfrom a word processing application.
 33. A method according to claim 30,wherein, in said outputting step, the facsimile cover sheet data and thefacsimile document are output so as to be received at a destination as aseries of facsimile information in proper order.
 34. A method accordingto claim 30, further comprising a step of selecting a peripheral deviceto perform a facsimile transmission of the image data, wherein, in saidoutputting step, the image data are output to the selected peripheraldevice.
 35. A method for automatically generating and outputtingfacsimile cover sheet information and a facsimile document, the methodcomprising the steps of:obtaining a facsimile document to be faxed;invoking a first driver to create facsimile cover sheet data and to calla printer driver to render a body of the facsimile document; renderingthe facsimile document; spooling the rendered facsimile document fromthe printer driver to a memory and returning the number of rendereddocument pages to the first driver; recalling the printer driver torender the facsimile cover sheet data and transmitting to the printerdriver the created cover sheet data and the number of rendered documentpages together with a fax flag indicator; rendering the facsimile coversheet data in accordance with transmitted cover sheet data; spooling therendered facsimile cover sheet information to the memory; and retrievingthe facsimile cover sheet data and facsimile document from the memoryand outputting both the facsimile cover sheet information and facsimiledocument in proper order, respectively.
 36. A method according to claim35, wherein, in said obtaining step, the facsimile document is obtainedfrom a word processing application.
 37. A method according to claim 35,wherein the first driver performs an operation for a facsimile job. 38.A method according to claim 35, wherein the rendered facsimile documentand the rendered facsimile cover sheet information are spooled in thememory with a file name specified by the first driver, and, in saidretrieve step, the rendered facsimile document and the renderedfacsimile cover sheet information are retrieved on the basis of thespecified file name.